#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>

//获取环境变量
int main()
{
    const char* username = getenv("USER");
    if(strcmp("yss", username) == 0)
    {
        printf("实现核心代码\n");
    }
    else 
    {
        printf("你没有权限\n");
    }
    // if(username) printf("username: %s\n", username);
    // else printf("None\n");
    return 0;
}

//子进程可以继承父进程的环境变量
// int main(int argc, char* argv[], char* env[])
// {
//     printf("pid: %d, ppid: %d\n", getpid(), getppid());
//     for(int i=0; env[i]; i++)
//     {
//         printf("env[%d]: %s\n", i, env[i]);
//     }
//     pid_t id = fork();
//     if(id == 0)
//     {
//         printf("pid: %d, ppid: %d\n", getpid(), getppid());
//         for(int i=0; env[i]; i++)
//         {
//             printf("env[%d]: %s\n", i, env[i]);
//         }
//     }
//     return 0;
// }

//查看main函数的第三个参数-打印出来
// int main(int argc, char* argv[], char* env[])
// {
//     for(int i=0; env[i]; i++)
//     {
//         printf("env[%d]: %s\n", i, env[i]);
//     }
//     return 0;
// }

//加减乘除：
// int main(int argc, char* argv[])
// {
//     if(argc != 4)
//     {
//         printf("Usage:\n\t .myprocess number[-add|-sub|-mul|-div]\n");
//         return 1;
//     }
//     int x = atoi(argv[2]);
//     int y = atoi(argv[3]);
//     if(strcmp("-add", argv[1]) == 0)
//     {
//         printf("%d+%d=%d\n", x,y,x+y);
//     }
//     else if(strcmp("-sub", argv[1]) == 0)
//     {
//         printf("%d-%d=%d\n", x,y,x-y);
//     }
//     else if(strcmp("-mul", argv[1]) == 0)
//     {
//         printf("%d*%d=%d\n", x,y,x*y);
//     }
//     else if(strcmp("-div", argv[1]) == 0)
//     {
//         printf("%d/%d=%d\n", x,y,x/y);
//     }
//     else printf("unknown\n");
//     return 0;
// }

//实现不同的功能-3种
// int main(int argc, char* argv[])
// {
//     if(argc != 2)
//     {
//         printf("Usage:\n\t ./myprocess number[1-3]\n");
//         return 1;
//     }
//     if(strcmp("-1", argv[1]) == 0) 
//     {
//         printf("func1\n");
//     }
//     else if(strcmp("-2", argv[1]) == 0) 
//     {
//         printf("func2\n");
//     }
//     else if(strcmp("-3", argv[1]) == 0) 
//     {
//         printf("func3\n");
//     }
//     else
//     {
//         printf("unknown\n");
//     }
//     return 0;
// }

//命令行参数列表
// int main(int argc, char* argv[])
// {
//     for(int i=0;i<argc;i++)
//     {
//         printf("argv[%d]: %s\n", i, argv[i]);
//     }
//     return 0;
// }